<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>02-.经典面试题</title>
</head>

<body>
    <script type="text/javascript">
        let arr = [];
        for (var i = 0; i < 2; i++) {
            // 给数组添加元素，元素的值是一个匿名函数
            arr[i] = function () {
                console.log(i);
            }
        }
        console.log(i);
        // 函数的作用域没有 i 上一层查找，即全局作用域
        // 此时循环已结束 i = 2
        // console.log(i);    // 2
        arr[0]();   // 2
        arr[1]();   // 2

        console.log('-------------------------');

        // let 声明的变量有相互独立的作用域
        // 执行的时候，查找 j 也就是当前作用域的j 
        let arr1 = [];
        for (let j = 0; j < 2; j++) {
            // 给数组添加元素，元素的值是一个匿名函数
            arr1[j] = function () {
                console.log(j);
            }
        }
        // console.log(j);  // j is not defined
        arr1[0]();   // 0 
        arr1[1]();   // 1
    </script>
</body>

</html>